use crate::${{moduleName}}::domain::mapper::${{moduleName}}_${{business_name}}::${{className}};
{% for use in useList %}
use ${{use}};
{% endfor %}


#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
#[derive(macros::Export)]
pub struct ${{className}}VO {
// ${{pkColumn.columnComment}}
pub ${{pkColumn.columnName}}:Option<${{pkColumn.javaType}}>,
{% for column in columns %}
{% if column.isDetail %}
      // ${{column.columnComment}}
    {% if column.isExport %}
      #[excel( "${{column.columnComment}}" {% if column.dictType %}, dictType = "${{column.dictType}}",{% endif %} {% if column.readConverterExp %}, dictType = "${{column.readConverterExp}}",{% endif %})]
    {% endif %}
    pub ${{column.columnName}}:Option<${{column.javaType}}>,
{% endif %}
{% endfor %}
}

impl From<${{className}}> for ${{className}}VO {
    fn from(arg: ${{className}}) -> Self {
        Self {
        ${{pkColumn.columnName}}:arg.${{pkColumn.columnName}},
            {% for column in columns %} {% if column.isDetail%} ${{column.columnName}}: arg.${{column.columnName}},{% endif %}{% endfor %}
        }
    }
}

//查询列表用的
#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ${{className}}ListVO {
// ${{pkColumn.columnComment}}
pub ${{pkColumn.columnName}}:Option<${{pkColumn.javaType}}>,
{% for column in columns %}
{% if column.isList %}
      // ${{column.columnComment}}
    pub ${{column.columnName}}:Option<${{column.javaType}}>,
{% endif %}
{% endfor %}
}

impl From<${{className}}> for ${{className}}ListVO {
    fn from(arg: ${{className}}) -> Self {
        Self {
        ${{pkColumn.columnName}}:arg.${{pkColumn.columnName}},
            {% for column in columns %} {% if column.isList%} ${{column.columnName}}: arg.${{column.columnName}},{% endif %}{% endfor %}
        }
    }
}


